package com.thx.addressbook.service;

import com.thx.addressbook.dao.AddressbookRoleDao;
import com.thx.addressbook.model.AddressbookRole;
import com.thx.common.service.BaseManager;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import java.util.List;

@Service
@Transactional(readOnly = true)
public class AddressbookRoleService extends BaseManager<AddressbookRole> {

  private static final Logger logger = LoggerFactory.getLogger(AddressbookRoleService.class);

  @Autowired
  private AddressbookRoleDao addressbookRoleDao;

  /**
   * 根据授权类型、授权对象查询权限集合.
   * 
   * @param parentId 授权id,不能为空
   * @param parentType 授权类型,不能为空
   * @return 权限列表
   */
  public List<AddressbookRole> findByPIdAndPType(Long parentId, String parentType) {
    return addressbookRoleDao.findByPIdAndPType(parentId, parentType);
  }

  /**
   * 根据人员Id、人员所属部门id、人员角色id查询人员所有分类授权对象.
   * 
   * @param perId 人员Id,不能为空
   * @param depId 人员所属部门id,不能为空
   * @param role 人员角色id,不能为空
   * @return 分类权限列表
   */
  public List<AddressbookRole> findCategryByPerIdOrDepOrRole(String perId, String depId,
      String role) {
    return addressbookRoleDao.findCategryByPerIdOrDepOrRole(perId, depId, role);
  }


  /**
   * 根据人员Id、人员所属部门id、人员角色id查询人员所有分组授权对象.
   * 
   * @param perId 人员Id,不能为空
   * @param depId 人员所属部门id,不能为空
   * @param role 人员角色id,不能为空
   * @return 分组权限列表
   */
  public List<AddressbookRole> findGroupByPerIdOrDepOrRole(String perId, String depId,
      String role) {
    return addressbookRoleDao.findGroupByPerIdOrDepOrRole(perId, depId, role);
  }

  // public Page<AddressbookRole> queryAllByCondition(
  // AddressbookRole info, Page<AddressbookRole> page) {
  // page.setResult(addressbookRoleDao.queryAllByCondition(info, page.getStart(),
  // page.getMax()));
  // page.setCount(addressbookRoleDao.queryCount(info));
  // return page;
  // }
  //
  // public List<AddressbookRole> queryAll() {
  // return addressbookRoleDao.queryAll();
  // }
  //
  // /**
  // * 保存修改
  // * 建立日期 : Apr 18, 2013 10:28:52 AM<br>
  // * 作者 : 孙耀飞<br>
  // * @param addressbookRole
  // */
  // @Transactional(readOnly = false)
  // public void saveOrUpdate(AddressbookRole addressbookRole){
  // this.addressbookRoleDao.saveOrUpdate(addressbookRole);
  // }
  //
  // /**
  // * 根据Id找到对象的 权限集合
  // * 建立日期 : May 13, 2013 4:48:16 PM<br>
  // * 作者: 孙耀飞<br>
  // * 模块 : <br>
  // * 描述 : <br>
  // * 1 <br>
  // * 2 <br>
  // */
  // public List<AddressbookRole> findById(Long id){
  // return this.addressbookRoleDao.findById(id);
  // }
  // /**
  // * 根据ParentId找到对象的 权限集合
  // * 建立日期 : May 14, 2013 10:48:05 AM<br>
  // * 作者: 孙耀飞<br>
  // * 模块 : <br>
  // * 描述 : <br>
  // * 1 <br>
  // * 2 <br>
  // */
  // public List<AddressbookRole> findByPIdAndPType(Long parentId,String parentType){
  // return this.addressbookRoleDao.findByPIdAndPType(parentId,parentType);
  // }
  // /**
  // * 批量删除
  // * 建立日期 : May 13, 2013 4:52:59 PM<br>
  // * 作者: 孙耀飞<br>
  // * 模块 : <br>
  // * 描述 : <br>
  // * 1 <br>
  // * 2 <br>
  // */
  // @Transactional(readOnly = false)
  // public void deleteList(List<AddressbookRole> list){
  // for(AddressbookRole role: list){
  // this.addressbookRoleDao.delete(role.getId());
  // }
  // }
  // /**
  // * 根据视图 view 查找
  // * 建立日期 : May 15, 2013 6:36:18 PM<br>
  // * 作者: 孙耀飞<br>
  // * 模块 : <br>
  // * 描述 : <br>
  // * 1 <br>
  // * 2 <br>
  // */
  // public List<AddressbookRole> findByView(AddressbookRoleView roleView ){
  // return this.addressbookRoleDao.findByView(roleView);
  // }
}
